package DataIO;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Arrays;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.ss.usermodel.*;

public class BinaireHydraulique {
	
	/** tableau des trajectoires hydraulique */
	double trajectoires[][];
	
	/** tableau des apports hydrauliques */
	double apports[];
	
	/** tableau des vmax */
	double vmax[];
	
	/** v0 */
	double v0;
	
	/** Tableau des vmins */
	double vmin[];
	
	/** rho */
	double rho;
	
	/**
	 * Construit une instance de binairehydraulique
	 * @param file fichier de données
	 */
	public BinaireHydraulique(String file){
		trajectoires= new double[7][8];
		ReelleHydraulique rh = new ReelleHydraulique(file);
		apports = rh.getApports();
		vmax=rh.getVmax();
		v0=rh.getV0();
		vmin=rh.getVmin();
		rho=rh.getRho();
		try {
			readData( file);
		} catch (InvalidFormatException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	/**
	 * 
	 * @param file
	 * @throws InvalidFormatException
	 * @throws IOException
	 */
	public void readData(String file) throws InvalidFormatException, IOException{
		InputStream inp = new FileInputStream(file);
		Workbook wb = WorkbookFactory.create(inp);
		Sheet sheet1 = wb.getSheetAt(7);
		int i=0;
		int rowindex=1;
		for(double trajectoire[] : trajectoires){
			int j=0;
			int colindex=1;
			for(double day : trajectoire){
				trajectoires[i][j]=sheet1.getRow(rowindex).getCell(colindex).getNumericCellValue();
				j++;
				colindex++;
			}
			
			i++;
			rowindex++;
		}
		
	}
	/**
	 * @return the trajectoires
	 */
	public double[][] getTrajectoires() {
		return trajectoires;
	}
	
	/**
	 * @return the apports
	 */
	public double[] getApports() {
		return apports;
	}
	/**
	 * @return the vmax
	 */
	public double[] getVmax() {
		return vmax;
	}
	/**
	 * @return the v0
	 */
	public double getV0() {
		return v0;
	}
	/**
	 * @return the vmin
	 */
	public double[] getVmin() {
		return vmin;
	}
	/**
	 * @return the rho
	 */
	public double getRho() {
		return rho;
	}
	/* (non-Javadoc)
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString() {
		return "BinaireHydraulique [trajectoires="
				+ Arrays.toString(trajectoires) + "]";
	}
	
}
